import axios from 'axios'
// 创建axios对象
const serive = axios.create({
  timeout: 5000,
});
// 
export default function (url,method,data,headerType="json"){
      // 1. 根据headerType 不同设置不同请求头类型content-type
      if(method=="post"&&headerType=="form"){
         serive.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; //name=1&age=2
      }
      if(method=="post"&&headerType=="json"){
         serive.defaults.headers.post['Content-Type'] = 'application/json'; //{name:1,age:2}
      }
       if(method=="post"&&headerType=="upload"){
         serive.defaults.headers.post['Content-Type'] = 'multipart/form-data'; //formdata类型文件数据包
      }
// 请求拦截器
// 应用场景：拦截到token 并携带到请求头// 加载loading效果

      serive.interceptors.request.use(config=>{
        // 拦截到token携带到请求头
          // config---可以根据以下内容拦截
            // config.url---地址
            // config.method--请求方式
            // config.data --发送的数据
        return config
      })
 // 响应拦截器
  // 根据后台返回的公共状态 做公共提示  // 取消loading
    serive.interceptors.response.use(response=>{
      
      return response
    })
    return serive({
      url:url,
      method,
      [method=="get"?'params':'data']:data
    })

}
